/*
 * ManejadorArbol.h
 *
 *  Created on: 03/06/2010
 *      Author: Grupo Klow
 */

#ifndef MANEJADORARBOL_H_
#define MANEJADORARBOL_H_

#include "ManejadorContexto.h"
#include "../../../ArbolB/src/ArbolB.h"

class ManejadorArbol: public ManejadorContexto{

private:

	ArbolB * arbol;

	char* ultimoContextoProcesado;

public:

	ManejadorArbol(string nombre_archivo);

	//invierte una clave(contexto) particular. De string a Nodo::TClave
	Nodo::TClave invertirNombreContexto (string contextoNombre);

	//invierte una clave(contexto) particular. De Nodo::TClave a string
	string invertirClave (Nodo::TClave clave);

	//busca el contexto en el arbol... NULL si no existe
	Contexto* buscarContexto(string contextoNombre);

	//inserta un nuevo contexto al arbol
	ManejadorContexto::Resultado altaContexto(Contexto* contexto);

	//modifica un Contexto particular segun el campo 'nombre' del 'contexto'
	ManejadorContexto::Resultado modificarContexto(Contexto* contexto);

	void imprimirContextos(FILE * salida);

	~ManejadorArbol();
};

#endif /* MANEJADORARBOL_H_ */
